namespace DotNetNuke.Entities.Modules.Communications
{
    using System;
    using System.Runtime.CompilerServices;

    public class ModuleCommunicationEventArgs : EventArgs
    {
        private string _Sender;
        private string _Target;
        private string _Text;
        private string _Type;
        private object _Value;

        public ModuleCommunicationEventArgs()
        {
            this._Type = null;
            this._Value = null;
            this._Sender = null;
            this._Target = null;
            this._Text = null;
        }

        public ModuleCommunicationEventArgs(string Text)
        {
            this._Type = null;
            this._Value = null;
            this._Sender = null;
            this._Target = null;
            this._Text = null;
            this._Text = Text;
        }

        public ModuleCommunicationEventArgs(string Type, object Value, string Sender, string Target)
        {
            this._Type = null;
            this._Value = null;
            this._Sender = null;
            this._Target = null;
            this._Text = null;
            this._Type = Type;
            this._Value = RuntimeHelpers.GetObjectValue(Value);
            this._Sender = Sender;
            this._Target = Target;
        }

        public string Sender
        {
            get
            {
                return this._Sender;
            }
            set
            {
                this._Sender = value;
            }
        }

        public string Target
        {
            get
            {
                return this._Target;
            }
            set
            {
                this._Target = value;
            }
        }

        public string Text
        {
            get
            {
                return this._Text;
            }
            set
            {
                this._Text = value;
            }
        }

        public string Type
        {
            get
            {
                return this._Type;
            }
            set
            {
                this._Type = value;
            }
        }

        public object Value
        {
            get
            {
                return this._Value;
            }
            set
            {
                this._Value = RuntimeHelpers.GetObjectValue(value);
            }
        }
    }
}

